Ddr flash implementation with direct register access to legacy flash functions

ABSTRACT

A Double Data Rate (DDR) nonvolatile memory for use with a wireless device. A host processor transfers commands and data through a DDR interface of the nonvolatile memory. The DDR nonvolatile memory implements legacy flash functions while maintaining DDR behavior.

Recent developments in a number of different digital technologies havegreatly increased the need to transfer large amounts of data from onedevice to another or across a network to another system. Technologicaldevelopments permit digitization and compression of large amounts ofvoice, video, imaging, and data information, which may be rapidlytransmitted from computers and other digital equipment to other deviceswithin the network. Computers have faster central processing units andsubstantially increased memory capabilities, which have increased thedemand for devices that can more quickly store and transfer largeramounts of data.

These developments in digital technology have stimulated a need todeliver ever faster storage devices to supply data to these processingunits. Double Data Rate (DDR) SDRAM included in main memories forcomputing systems provides improvements in performance but does notprovide permanent storage. Further improvements in faster, permanentdata storage are needed.

BRIEF DESCRIPTION OF THE DRAWINGS

The subject matter regarded as the invention is particularly pointed outand distinctly claimed in the concluding portion of the specification.The invention, however, both as to organization and method of operation,together with objects, features, and advantages thereof, may best beunderstood by reference to the following detailed description when readwith the accompanying drawings in which:

FIG. 1 is a diagram that illustrates a wireless device and a Double DataRate (DDR) nonvolatile memory implementation with direct register accessto legacy flash functions in accordance with the present invention;

FIG. 2 is a diagram that illustrates an embodiment of the DDRnonvolatile memory in accordance with the present invention; and

FIG. 3 is a flow diagram that illustrates a method of a host processorinterfacing to the DDR nonvolatile memory.

It will be appreciated that for simplicity and clarity of illustration,elements illustrated in the figures have not necessarily been drawn toscale. For example, the dimensions of some of the elements may beexaggerated relative to other elements for clarity. Further, whereconsidered appropriate, reference numerals have been repeated among thefigures to indicate corresponding or analogous elements.

DETAILED DESCRIPTION

In the following detailed description, numerous specific details are setforth in order to provide a thorough understanding of the invention.However, it will be understood by those skilled in the art that thepresent invention may be practiced without these specific details. Inother instances, well-known methods, procedures, components and circuitshave not been described in detail so as not to obscure the presentinvention.

As shown in FIG. 1, the embodiment illustrates a device 10 as a wirelesscommunications device that includes a radio to allow communication withother devices. Accordingly, communications device 10 may operate in awireless network and be any type of device capable of communicating inan RF/location space with another device. However, it should be pointedout that device 10 is not limited to wireless embodiments and thepresent invention may have applications in a variety of products. Forinstance, the claimed subject matter may be incorporated into desktopcomputers, laptops, smart phones, MP3 players, cameras, communicatorsand Personal Digital Assistants (PDAs), medical or biotech equipment,automotive safety and protective equipment, automotive infotainmentproducts, etc. However, it should be understood that the scope of thepresent invention is not limited to these examples.

The figure illustrates the wireless embodiment where a transceiver 12receives and transmits a modulated signal from multiple antennas. Analogfront end transceiver 12 may be a stand-alone Radio Frequency (RF)discrete or integrated analog circuit. Transceiver 12 may also beembedded with a processor as a mixed-mode integrated circuit, where theprocessor, in general, processes functions that fetch instructions,generate decodes, find operands, and perform appropriate actions, thenstores results. The processor may include baseband and applicationsprocessing functions and utilize one or more processor cores to handleapplication functions and allow processing workloads to be shared acrossthe cores.

The processor may transfer data through an interface 26 to a systemmemory 28 that may include a combination of memories such as a RandomAccess Memory (RAM), a Read Only Memory (ROM) and a nonvolatile memory,although neither the type of memory, variety of memories, norcombination of memories included in system memory 28 is a limitation ofthe present invention. Nonvolatile memory 26 may be a memory such as,for example, an ETOX™ Flash NOR Memory, an Electrically Erasable andProgrammable Read Only Memory (EEPROM), a Ferroelectric Random AccessMemory (FRAM), a Polymer Ferroelectric Random Access Memory (PFRAM), aMagnetic Random Access Memory (MRAM), an Ovonics Unified Memory (OUM),or any other device capable of storing instructions and/or data andretaining that information even with device 10 in a power conservationmode. However, it should be understood that the scope of the presentinvention is not limited to these examples for a nonvolatile memory.

In accordance with the present invention the architecture of device 10includes a Double Data Rate (DDR) nonvolatile memory 30 as ahigh-bandwidth technology that supports data transfers on both therising and falling edges of each clock cycle. The clock signaltransitions from “0” to “1” and back to “0” each cycle with the firsttransition called the “rising edge” and the second transition the“falling edge”. Normally only one of these clock signal transitions isused to trigger a data transfer but with DDR nonvolatile memory 30 bothclock edges are used, effectively doubling the memory's bandwidth bytransferring data twice per clock signal. Again, in accordance with thepresent invention the DDR nonvolatile memory 30 architectureaccommodates legacy flash functions while implementing DDR behavior.

FIG. 2 is a block diagram that illustrates one embodiment of the presentinvention for DDR nonvolatile memory 30. The embodiment illustrates astructure to access the various registers in the flash device directlyduring the DDR burst protocol. A DDR I/F block 202 located within DDRnonvolatile memory 30 provides an interface between the host processorand other memory blocks such as the memory arrays, registers andmicrocontroller. DDR I/F block 202 is designed to transfer two datawords per clock cycle at the I/O pins for a single read access of theDDR nonvolatile memory 30. The DDR I/F block 202 is connected to a DDRinterface bus 204 that transfers data between the various buffers andregisters in the memory device and the external host processor. Inaddition, multiple page buffers 206 hold array data for burst reads, andthus, the DDR I/F block 202 transfers the page buffer data to the hostprocessor system at both edges of the system clock, converting the 32bit single edged data within the flash device to a 16 bit double edgeddata to the host processor system.

In addition to the host processor system accessing arrayed data,non-arrayed data stored in one of the SRAM arrays or registers locatedin block 208 may be accessed through a burst read. Data is placed on theDDR interface bus 204 for transfer to the host processor through DDR I/Fblock 202. Further, the stored data in command register block 208 mayalso be accessed by a microcontroller 214 that is embedded within DDRnonvolatile memory 30. Under control of microcontroller 214, stored datawithin command register block 208 may be transferred to the internalmicrocontroller memory bus 210 and used to configure the DDR nonvolatilememory 30.

Program buffer data stored in program buffer 212 may also be accessed bymicrocontroller 214 to initiate the nonvolatile memory array programoperation. Microcontroller 214 may also use the microcontroller memorybus 210 to update status bits in the status register of controlregisters 216. Status bits may be burst out of the status register tothe DDR interface bus 204 and the DDR I/F block 202 on a host processorsystem request.

Note that microcontroller 214 may manage complex memory operationsinternal to DDR nonvolatile memory 30 without intervention from the hostprocessor. Microcontroller 214 may access program code from microcodestorage 218 and receive data needed for operations throughmicrocontroller memory bus 210. The different data types are memorymapped on the microcontroller memory bus 210 for easy access. Some datatypes are shared between microcontroller memory bus 210 and the DDRinterface bus 204 to provide the ability for the host processor, as wellas the internal microcontroller 214, to access and manipulate memorydata.

It is understood that flash memories have read latencies typicallymeasured in nanoseconds (ns) that are similar to read latencies forSDRAMs. However, flash memories have program time latencies in the orderof microseconds whereas SDRAMs do not exhibit comparable latencies whenwriting. It should be pointed out that the architecture illustrated inFIG. 2 for DDR nonvolatile memory 30 accounts for significantdifferences in the technologies of SDRAMs compared to flash memorydevices, especially in the way data is accessed and written. Therefore,due to the latencies inherent in the flash memory technology, DDRnonvolatile memory 30 performs foreground reads but background writeoperations (program/erase) implemented with large buffers to write thedata. Status checking mechanisms may be used to indicate the writeprogress.

Further, DDR nonvolatile memory 30 distinguishes array accesses fromnon-array accesses. DDR nonvolatile memory 30 may use the address inputto determine the type of array accesses, using a memory map fornon-array data in one embodiment and overlaying over the array space inanother embodiment. Note that non-programmable read areas may or may notbe part of the memory map. By way of example of determining the type ofarray accesses, microcontroller 214 may initiate a memory access with an“active” command and DDR nonvolatile memory 30 monitors the address toidentify whether the main core flash array is being accessed or whethera non-array access to command registers and SRAM or registers 208 isbeing accessed. If the access is to the main core flash array then datafor the array access is sensed and loaded onto one of the page buffers206, i.e., one of the four row buffers selected by the bank address.

On the other hand, if the access is a non-array access and directed tothe command registers and SRAM 208, DDR nonvolatile memory 30 decodesthe access space during the “active” cycle and selects the appropriateregister or SRAM element. No data transfer occurs from these registersto the row buffers beyond enabling the decode path for these registersor SRAMs. Then, when a “read” command is issued as the next step bymicrocontroller 214, instead of outputting the data from the row buffersDDR nonvolatile memory 30 directly reads the data from the register orthe SRAM that was selected in the previous “active” cycle.

Flash device writes are not coherent by nature, and thus, long timeintervals may be needed to internally transfer data that is to bewritten to the core flash array. During this time interval, the datafrom the array reads will not match the data previously written bymicrocontroller 214. Therefore, DDR nonvolatile memory 30 does notperform writes using the row buffers, but instead writes directly to thecommand registers and SRAM 208. Then, the data stored in commandregisters and SRAM 208 may be used to either configure the flash devices(command writes) or program the core flash array with different data.Again, note that row buffers are used only for array reads and during awrite operation the data is written directly to the command registersand SRAM 208 instead of page buffers 206.

The present architecture for DDR nonvolatile memory 30 maintains theinterface similarities to DDR SRAM, and by so doing, reduces controllerredesign on the system level as the existing controllers may work on DDRnonvolatile memory 30 with minimal changes. Differences between theSDRAM DDR interface and the interface to DDR nonvolatile memory 30 maybe controlled through software (for example writing to non array space).The present architecture for DDR nonvolatile memory 30 reduces thecoherency issues with flash data transfers. Memory writes are directlyto the registers, so there is no intermediate state with data existingin the row buffers to then be transferred in the background. Wheneverdata in the registers is read back, the updated data or current data isalways available.

Also, by directly writing to the destination registers, the response ofDDR nonvolatile memory 30 is predictable. By way of example, ifmicrocontroller 214 issues commands to reconfigure the flash devicedifferently, the write is directly to the destination registers and theresponse to the command is immediate. This is in contrast to writing tothe row buffers first and then transferring data in the background wherethe latency for command execution is difficult to predict.

Another advantage attributable to the architecture of DDR nonvolatilememory 30 is that read incoherency for registers its avoided. This isimportant for a status read where out of date information gives thewrong indication to a microcontroller. DDR nonvolatile memory 30 maypoll for program or erase status and correctly receive current andupdated data by directly reading the register data.

FIG. 3 shows a flowchart in accordance with various embodiments of thepresent invention that illustrates an algorithm or process in accordancewith the present invention that may be used to provide a flash memorywith DDR behavior. Method 300 or portions thereof are performed by theprocessor/flash device combination of an electronic system. Method 300is not limited by the particular type of apparatus, software element, orsystem performing the method. Also, the various actions in method 300may be performed in the order presented, or may be performed in adifferent order.

Method 300 is shown beginning at block 310 where commands are receivedby DDR nonvolatile memory 30 over a DDR interface bus 204 to store in acommand register. In block 320 data is provided over the DDR interfacebus 204 to store in a program buffer 212. In block 330 a determinationis made as to signaling (signal 220) a microcontroller 214 by thecommand registers 208 to indicate that program buffers 212 are full. Inblock 340 the data from program buffers 212 is transferred to amicrocontroller memory bus 210 to store in the DDR nonvolatile memorystorage (222).

By now it should be apparent that an architecture for a DDR flash devicehas been shown that accommodates legacy flash functions whileimplementing DDR behavior. Specifically, the non-array aspects of theDDR flash device are accounted for and addressed in the architecture toaccommodate flash device latencies.

While certain features of the invention have been illustrated anddescribed herein, many modifications, substitutions, changes, andequivalents will now occur to those skilled in the art. It is,therefore, to be understood that the appended claims are intended tocover all such modifications and changes as fall within the true spiritof the invention.

1. A method of accessing a Double Data Rate (DDR) nonvolatile memory,comprising: transmitting a command over a DDR bus to store in a commandregister; providing data over the DDR bus to store in a program buffer;detecting arrayed accesses from non-arrayed accesses, wherein array dataus loaded onto a page buffer when an arrayed access is detected;decoding the non-arrayed accesses during an active cycle; enabling adecode path for one or more of a register or SRAM element for thenon-arrayed accesses; reading non-arrayed accesses data directly fromthe one or more of the register or SRAM element instead of the pagebuffer, wherein the array data and the non-arrayed accesses data arewritten to the one or more of the register or SRAM element; signaling amicrocontroller from the command register to indicate the program bufferis full; and transferring the data from the program buffer to amicrocontroller memory bus to store in the DDR nonvolatile memory. 2.The method of claim 1 further including transferring two data words perclock cycle at I/O pins for a read or write of the DDR nonvolatilememory.
 3. The method of claim 1 further including directly writing twodata words per clock to the command register without first writing to apage buffer.
 4. The method of claim 1 wherein the non-arrayed accessesdata is stored in one of SRAM arrays or registers, the SRAMS arrays orregisters accessed through one of a burst read or write.
 5. A DoubleData Rate (DDR) nonvolatile memory, comprising: a DDR interface tooperate at a first frequency in transferring data at I/O pins; a DDRinterface bus coupled to the DDR interface to operate at a secondfrequency; a program buffer coupled to the DDR interface bus to storecommands; command registers coupled to the DDR interface bus and to amicrocontroller memory bus; one or more page buffers to hold array datafor transfer to the DDR interface bus; and a microcontroller coupled tothe microcontroller memory bus and coupled to receive a signal from thecommand registers, wherein the DDR interface decodes an address todetermine arrayed accesses from non-arrayed accesses, loads the arraydata onto the one or more page buffers when an arrayed access isdetected, decodes the non-arrayed accesses during an active cycle,enables a decode path for one or more of a register or SRAM element forthe non-arrayed accesses and reads non-arrayed accesses data directlyfrom the one or more of the register or SRAM element instead of the oneor more page buffers and writes the array data and the non-arrayedaccesses data to the one or more of the register or SRAM element.
 6. TheDDR nonvolatile memory of claim 5 wherein the first frequency transferstwo data words per clock cycle and the second frequency transfers onedata word per clock cycle.
 7. The DDR nonvolatile memory of claim 5wherein the non-arrayed accesses are to data stored in Static RandomAccess Memory (SRAM) or the command registers or the program buffer. 8.A Double Data Rate (DDR) nonvolatile memory, comprising: a DDR interfaceblock to transfer data at I/O pins at a first frequency; a DDR interfacebus coupled to the DDR interface block to operate at a second frequencythat is one half the first frequency; a microcontroller coupled to amicrocontroller memory bus; and command registers and Static RandomAccess Memory (SRAM) coupled to the DDR interface bus and to themicrocontroller memory bus, wherein the DDR interface block decodes anaddress to determine non-arrayed accesses to the command registers andSRAM from arrayed accesses, loads array data onto one or more of thepage buffers when an arrayed access is determined, decodes thenon-arrayed accesses during an active cycle, enables a decode path forone or more of a register or SRAM element for the non-arrayed accessesand reads non-arrayed accesses data directly from the one or more of theregister or SRAM element instead of the one or more page buffers andwrites the array data and the non-array accesses data to the one or moreof the register or SRAM element.
 9. The DDR nonvolatile memory of claim8 further wherein the one or more page buffers hold the array data fortransfer to the DDR interface bus.
 10. The DDR nonvolatile memory ofclaim 9 wherein the command registers and SRAM signal themicrocontroller when the program buffers are full.
 11. The DDRnonvolatile memory of claim 8 wherein the command register is coupled tothe DDR interface bus to store commands.
 12. A wireless device,comprising: first and second antenna; a transceiver coupled to the firstand second antenna; a processing device coupled to the transceiver; anda Double Data Rate (DDR) nonvolatile memory coupled to the processingdevice to transfer two data words per clock cycle at I/O pins for a readaccess of the DDR nonvolatile memory, wherein the DDR nonvolatile memoryimplements flash functions while maintaining DDR behavior, wherein theDDR nonvolatile memory includes a DDR interface and the DDR interfacedecodes an address to determine arrayed accesses from non-arrayedaccesses, loads array data onto one or more of the page buffers when anarrayed access is determined, decodes the non-arrayed accesses during anactive cycle, enables a decode path for one or more of a register orSRAM element for the non-arrayed accesses, reads non-arrayed accessesdata directly from the one or more of the register or SRAM elementinstead of the one or more page buffers and writes the array data andthe non-array accesses data to the one or more of the register or SRAMelement.
 13. The wireless device of claim 12 wherein the DDR nonvolatilememory includes: the DDR interface to transfer data at I/O pins of theDDR nonvolatile memory; a DDR interface bus coupled to the DDRinterface; a microcontroller coupled to a microcontroller memory bus;and command registers and SRAM coupled to the DDR interface bus and tothe microcontroller memory bus.
 14. The wireless device of claim 13wherein the DDR nonvolatile memory further includes: a program buffercoupled to the DDR interface bus to store commands.
 15. The wirelessdevice of claim 13 wherein the DDR nonvolatile memory comprises: pagebuffers to hold array data for transfer to the DDR interface bus.
 15. Awireless device, comprising: first and second antenna; a transceivercoupled to the first and second antenna; a processing device coupled tothe transceiver; and a Double Data Rate (DDR) nonvolatile memory coupledto the processing device to transfer two data words per clock cycle atI/O pins for a read access of the DDR nonvolatile memory, wherein theDDR nonvolatile memory implements legacy flash functions whilemaintaining DDR behavior.
 16. The wireless device of claim 15 whereinthe DDR nonvolatile memory includes: a DDR interface to transfer data atI/O pins of the DDR nonvolatile memory; a DDR interface bus coupled tothe DDR interface; a microcontroller coupled to a microcontroller memorybus; and command registers and SRAM coupled to the DDR interface bus andto the microcontroller memory bus.
 17. The wireless device of claim 16wherein the DDR nonvolatile memory further includes: a program buffercoupled to the DDR interface bus to store commands.
 18. The wirelessdevice of claim 16 wherein the DDR nonvolatile memory further includes:page buffers to hold array data for transfer to the DDR interface bus.